package com.dd.common.validator.annotation;

import com.dd.common.validator.TimeRangeValidator;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;


/**
 * 时间范围注解，确保时间点 start <= end
 *
 * @author ikun-cheng
 */
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = TimeRangeValidator.class)
@Documented
@Repeatable(ValidTimeRange.List.class)  // 👈 关键：支持重复
public @interface ValidTimeRange {
    String message() default "开始时间不能晚于结束时间";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};

    String start();  // 开始字段名

    String end();    // 结束字段名

    /**
     * 容器注解，用于支持重复使用
     */
    @Target({ElementType.TYPE})
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @interface List {
        ValidTimeRange[] value();
    }
}